package com.ifyyf.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @Author if
 * @Description: @Configuration的类相当于spring的applicationContext.xml
 * @Date 2021-08-24 下午 01:05
 */
@Configuration
public class ConfigBean {
    /**
     * @LoadBalanced注解配置负载均衡实现RestTemplate
     * Irule是个接口，有许多实现类
     * AvailabilityFilteringRule：会先过滤掉崩跳闸的故障的服务，对剩下的服务进行 轮询
     * RoundRobinRule：轮询
     * RandomRule：随机
     * RetryRule：会先进行轮询获取服务，如果服务获取失败，则会在指定时间内进行重试
     * WeightedResponseTimeRule：权重
     * @return
     */
    @LoadBalanced   //Ribbon
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}
